// 菜单页面
function menuInfo(name,menuType,visible,remark) {
    layui.use(['table','layer','element'], function(){
        var table = layui.table;

        table.render({
            id:'menuDataList',
            elem: '#pagingInfo',
            url: '/menu/queryPaging',
            toolbar: true,
            title: '菜单管理',
            method: 'post',
            where:{'name':name,'menuType':menuType,'visible':visible,'remark':remark},
            request:{
                pageName:'page',
                limitName:'size'
            },
            cols: [[
                {type:'checkbox'},
                {field:'id', title:'ID', width:0, hide:true},
                {field:'name', title:'菜单名称'},
                //{field:'menuType', title:'菜单类型'},
                {field:'menuType', title:'菜单类型',templet:'<div>{{ getMenuTypeStr(d.menuType)}}</div>'},
                {field:'pmMark', title:'权限标识符'},
                {field:'url', title:'菜单链接'},
                //{field:'visible', title:'是否可见'},
                {field:'visible', title:'是否可见',templet:'<div>{{ getMenuVis(d.visible)}}</div>'},
                {field:'orderNum', title:'排序号'},
                {field:'remark', title:'备注'},
                {title:'操作',align:'center', width:160, fixed: 'right', toolbar: '#menuBar'}
            ]],
            page: true,
            response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            },
            parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
                if (res.errorCode == '0'){
                    return {
                        "code": res.errorCode, //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": res.data.total, //解析数据长度
                        "data": res.data.list //解析数据列表
                    };
                }else {
                    layer.msg(res.desc);
                    return {
                        "code": '0', //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": '0', //解析数据长度
                        "data": '' //解析数据列表
                    };
                }
            }
        });
    });
};

// 用户页面
function userInfo(userName,loginName,locked) {
    layui.use(['table','layer','element'], function(){
        var table = layui.table;

        table.render({
            id:'userDataList',
            elem: '#pagingInfo',
            url: '/user/queryPaging',
            toolbar: true,
            title: '用户管理',
            method: 'post',
            where:{'userName':userName,'loginName':loginName,'locked':locked},
            request:{
                pageName:'page',
                limitName:'size'
            },
            cols: [[
                {type:'checkbox'},
                {field:'id', title:'用户ID', hide:true},
                {field:'userName', title:'用户名'},
                {field:'loginName', title:'账号'},
                {field:'locked', title:'是否锁定',templet:'<div>{{ isLocked(d.locked)}}</div>'},
                {title:'操作',align:'center', width:160, fixed: 'right', toolbar: '#userBar'}
            ]],
            page: true,
            response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            },
            parseData: function(res){ //将原始数据解析成 table 组件所规定的数据

                if (res.errorCode == '0'){
                    return {
                        "code": res.errorCode, //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": res.data.total, //解析数据长度
                        "data": res.data.list //解析数据列表
                    };
                }else {
                    layer.msg(res.desc);
                    return {
                        "code": '0', //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": '0', //解析数据长度
                        "data": '' //解析数据列表
                    };
                }

            }
        });
    });
};

// 角色页面
function roleInfo(name) {
    layui.use(['table','layer','element'], function(){
        var table = layui.table;

        table.render({
            id:'roleDataList',
            elem: '#pagingInfo',
            url: '/role/queryPaging',
            toolbar: true,
            title: '角色管理',
            method: 'post',
            where:{'name':name},
            request:{
                pageName:'page',
                limitName:'size'
            },
            cols: [[
                {type:'checkbox'},
                {field:'id', title:'ID', hide:true},
                {field:'name', title:'角色名称'},
                {field:'remark', title:'备注'},
                {field:'createTime', title:'创建时间',templet:'<div>{{ sdfTime(d.createTime,"yyyy-MM-dd hh:mm:ss")}}</div>'},
                {title:'操作',align:'center', width:250, fixed: 'right', toolbar: '#roleBar'}
            ]],
            page: true,
            response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            },
            parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
                if (res.errorCode == '0'){
                    return {
                        "code": res.errorCode, //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": res.data.total, //解析数据长度
                        "data": res.data.list //解析数据列表
                    };
                }else {
                    layer.msg(res.desc);
                    return {
                        "code": '0', //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": '0', //解析数据长度
                        "data": '' //解析数据列表
                    };
                }
            }
        });
    });
};


// 同步配置页面
function tabConfigInfo(name,remark,conType,isEnable) {
    layui.use(['table','layer','element'], function(){
        var table = layui.table;

        table.render({
            id:'tabDataList',
            elem: '#pagingInfo',
            url: '/tableConfig/queryPaging',
            //toolbar: true,
            title: '同步配置',
            method: 'post',
            where:{'name':name,'remark':remark,'conType':conType,'isEnable':isEnable},
            request:{
                pageName:'page',
                limitName:'size'
            },
            cols: [[
                {type:'checkbox'},
                {field:'id', title:'配置ID', hide:true},
                {field:'isPublic', title:'是否公开', hide:true},
                {field:'name', title:'配置名称'},
                {field:'remark', title:'备注'},
                {field:'conType', title:'配置用途',templet:'<div>{{ coverType(d.conType)}}</div>'},
                {field:'isEnable', title:'是否启用',templet:'<div>{{ isEnable(d.isEnable)}}</div>'},
                {field:'createTime', title:'创建时间',templet:'<div>{{ sdfTime(d.createTime,"yyyy-MM-dd hh:mm:ss")}}</div>'},
                {title:'操作',align:'center', width:250, fixed: 'right', toolbar: '#tabConfigBar'}
            ]],
            page: true,
            response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            },
            parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
                if (res.errorCode == '0'){
                    return {
                        "code": res.errorCode, //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": res.data.total, //解析数据长度
                        "data": res.data.list //解析数据列表
                    };
                }else {
                    layer.msg(res.desc);
                    return {
                        "code": '0', //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": '0', //解析数据长度
                        "data": '' //解析数据列表
                    };
                }
            }
        });
    });
};


// 数据库列表
function dbInfoList(configId) {
    layui.use(['table','layer','element'], function(){
        var table = layui.table;

        table.render({
            id:'dbDataList',
            elem: '#dbInfoList',
            url: '/tableDbInfo/queryByConfigId',
            //toolbar: true,
            title: '数据库信息',
            method: 'post',
            where:{'configId':configId},
            request:{
                pageName:'page',
                limitName:'size'
            },
            cols: [[
                //{type:'checkbox'},
                {field:'id', title:'ID', hide:true},
                {field:'configId', title:'同步配置ID',hide: true},
                {field:'dbType', title:'类型', width:100,templet:'<div>{{ getDbType(d.dbType)}}</div>'},
                {field:'dbHost', title:'数据库IP:端口'},
                {field:'dbUsername', title:'用户名', width:100},
                {field:'dbPassword', title:'密码'},
                {field:'dataBase', title:'数据库名', width:100},
                {field:'mysqlType', title:'版本', width:70},
                {field:'charSet', title:'字符集', width:80},
                {title:'操作',align:'center', width:200, fixed: 'right', toolbar: '#dbInfoBar'}
            ]],
            page: false,
            response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            },
            parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
                if (res.errorCode == '0'){
                    return {
                        "code": res.errorCode, //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": res.data.total, //解析数据长度
                        "data": res.data //解析数据列表
                    };
                }else {
                    layer.msg(res.desc);
                    return {
                        "code": '0', //解析接口状态
                        "msg": res.desc, //解析提示文本
                        "count": '0', //解析数据长度
                        "data": '' //解析数据列表
                    };
                }
            }
        });
    });
};




function getDbType(l) {
    if (l == '1'){
        return '<font color="#ff0000"><b>源数据库</b></font>';
    }else {
        return '<font color="#003eff"><b>目标数据库</b></font>';
    }
};


function getMenuTypeStr(l) {
    if (l == '0'){
        return '菜单';
    }else {
        return '按钮';
    }
};

function getMenuVis(l) {
    if (l == '0'){
        return '不可见';
    }else {
        return '可见';
    }
};

function getMenuBlank(l) {
    if (l == 0){
        return '否';
    }else {
        return '是';
    }
};

function isLocked(l) {
    if (l == 0){
        return '<font color="green"><b>正常使用中</b></font>';
    }else {
        return '<font color="#ff0000"><b>账户已锁定</b></font>';
    }
};

function isEnable(l) {
    if (l == '1'){
        return '<font color="green"><b>启用</b></font>';
    }else {
        return '<font color="#ff0000"><b>停用</b></font>';
    }
};

function coverType(l) {
    if (l == '1'){
        return '<font color="green"><b>结构同步</b></font>';
    }else {
        return '<font color="#ff0000"><b>数据同步</b></font>';
    }
};


function sdfTime(datetime,fmt) {
    if (parseInt(datetime)==datetime) {
        if (datetime.length==10) {
            datetime=parseInt(datetime)*1000;
        } else if(datetime.length==13) {
            datetime=parseInt(datetime);
        }
    }
    datetime=new Date(datetime);
    var o = {
        "M+" : datetime.getMonth()+1,                 //月份
        "d+" : datetime.getDate(),                    //日
        "h+" : datetime.getHours(),                   //小时
        "m+" : datetime.getMinutes(),                 //分
        "s+" : datetime.getSeconds(),                 //秒
        "q+" : Math.floor((datetime.getMonth()+3)/3), //季度
        "S"  : datetime.getMilliseconds()             //毫秒
    };
    if(/(y+)/.test(fmt))
        fmt=fmt.replace(RegExp.$1, (datetime.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
        if(new RegExp("("+ k +")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
    return fmt;
};


function checkStr(a) {
    if(a == null || a.trim() === ""){
        return true;
    }else {
        return false;
    }
};

//获取所有选中的节点id
function getCheckedIds(data) {
    var ids = "";
    $.each(data, function (index, item) {
        if (ids != "") {
            ids = ids + "," + item.id;
        }else {
            ids = item.id;
        }
        //item 没有children属性
        if (item.children != null) {
            var i = getCheckedIds(item.children);
            if (i != "") {
                ids = ids + "," + i;
            }
        }
    });
    return ids;
};

//获取所有选中的节点名称
function getCheckedTables(data) {
    var str = "";
    $.each(data, function (index, item) {
        if (str != "") {
            str = str + "," + item.title;
        }else {
            str = item.title;
        }
    });
    return str;
};